---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  labels:
    heritage: deckhouse
    module: node-manager
  name: staticinstances.deckhouse.io
spec:
  group: deckhouse.io
  names:
    kind: StaticInstance
    listKind: StaticInstanceList
    plural: staticinstances
    singular: staticinstance
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - description: Static instance state
          jsonPath: .status.currentStatus.phase
          name: Phase
          type: string
        - description: Node associated with this static instance
          jsonPath: .status.nodeRef.name
          name: Node
          type: string
        - description: Static machine associated with this static instance
          jsonPath: .status.machineRef.name
          name: Machine
          type: string
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: StaticInstance describes a machine for the Cluster API Provider Static.
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources)'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds)'
              type: string
            metadata:
              type: object
            spec:
              description: StaticInstanceSpec defines the desired state of StaticInstance.
              properties:
                address:
                  description: |
                    The IP address of the host.
                  type: string
                  pattern: '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'
                credentialsRef:
                  description: |
                    The reference to the `SSHCredentials` object.
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    kind:
                      description: 'Kind of the referent. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds)'
                      type: string
                    name:
                      description: 'Name of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names)'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
              required:
                - address
                - credentialsRef
              type: object
            status:
              description: StaticInstanceStatus defines the observed state of StaticInstance
              properties:
                conditions:
                  description: Conditions defines current service state of the StaticInstance.
                  items:
                    description: Condition defines an observation of a Cluster API resource
                      operational state.
                    properties:
                      lastTransitionTime:
                        description: Last time the condition transitioned from one status
                          to another. This should be when the underlying condition changed.
                          If that is not known, then using the time when the API field
                          changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: A human readable message indicating details about
                          the transition. This field may be empty.
                        type: string
                      reason:
                        description: The reason for the condition's last transition
                          in CamelCase. The specific API may choose whether or not this
                          field is considered a guaranteed API. This field may not be
                          empty.
                        type: string
                      severity:
                        description: Severity provides an explicit classification of
                          Reason code, so the users or machines can immediately understand
                          the current situation and act accordingly. The Severity field
                          MUST be set only when Status=False.
                        type: string
                      status:
                        description: Status of the condition, one of True, False, Unknown.
                        type: string
                      type:
                        description: Type of condition in CamelCase or in foo.example.com/CamelCase.
                          Many .condition.type values are consistent across resources
                          like Available, but because arbitrary conditions can be useful
                          (see .node.status.conditions), the ability to deconflict is
                          important.
                        type: string
                    required:
                      - lastTransitionTime
                      - status
                      - type
                    type: object
                  type: array
                currentStatus:
                  properties:
                    lastUpdateTime:
                      description: The time when the current status was last updated in RFC3339 format.
                      format: date-time
                      type: string
                    phase:
                      description: InstancePhase is a label detailing the state of the instance
                          at the current point in time.
                      enum:
                        - Pending
                        - Bootstrapping
                        - Running
                        - Cleaning
                      type: string
                  type: object
                machineRef:
                  description: The reference to the `StaticMachine` object.
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    kind:
                      description: 'Kind of the referent. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds)'
                      type: string
                    name:
                      description: 'Name of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names)'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                      is made, if any. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency)'
                      type: string
                    uid:
                      description: 'UID of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids)'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                nodeRef:
                  description: The reference to the `Node` object.
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    kind:
                      description: 'Kind of the referent. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds)'
                      type: string
                    name:
                      description: 'Name of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names)'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                      is made, if any. [More info...](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency)'
                      type: string
                    uid:
                      description: 'UID of the referent. [More info...](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids)'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
